import axios from 'axios';

import { getToken } from '@/utils/auth';

import { ElMessage } from 'element-plus';

// 创建axios实例
const service = axios.create({
    // axios中请求配置有baseURL选项，表示请求URL公共部分
    baseURL: process.env.VUE_APP_BASE_API,
    // 超时 10s
    timeout: 10000
})

// 请求拦截
service.interceptors.request.use(config => {
    //请求头设置
    if(getToken()){
        config.headers['Authorization'] = getToken() // 让每个请求携带自定义token 请根据实际情况自行修改
    }
    return config
}, err => {
    console.log(err);
})

// 响应拦截
service.interceptors.response.use(arr => {
    // 对响应码的处理
    switch (arr.data.code) {
        case 400:
            ElMessage({
                message: arr.data.msg,
                type: 'warning',
            })
            break;
        case 401:
            ElMessage({
                message: arr.data.msg,
                type: 'warning',
            })
            break;
        case 403:
            ElMessage({
                message: arr.data.msg,
                type: 'warning',
            })
            break;
        case 500:
            ElMessage({
                message: arr.data.msg,
                type: 'error',
            })
            break;
    }
    return arr.data;
}, err => {
    console.log(err);
})

/** 默认get */
function request({ method = "get", url, data = {}, params = {} }) {
    return service({
        method,
        url,
        data,
        params,
    })
}

export default request
